#ifndef HUFFMANNODE_H
#define HUFFMANNODE_H

#include <string>

// Huffman树的节点结构体
struct HuffmanNode {
    std::string ch;     // 字符（对于叶子节点）或空字符串（对于内部节点）
    int freq;           // 字符频率（对于叶子节点）或子节点频率之和（对于内部节点）
    HuffmanNode* left;  // 左子节点
    HuffmanNode* right; // 右子节点

    // 构造函数
    HuffmanNode(std::string ch = "", int freq = 0, HuffmanNode* left = nullptr, HuffmanNode* right = nullptr)
        : ch(ch), freq(freq), left(left), right(right) {}

    // 析构函数（如果需要手动管理内存）
    // ~HuffmanNode() {
    //     delete left;
    //     delete right;
    // }

    // 注意：在实际使用中，你可能不需要在头文件中定义析构函数，
    // 除非你打算在头文件中实现节点的内存管理。通常，内存管理会在更高层次（如HuffmanTree类）进行。
};

#endif // HUFFMANNODE_H